package com.tedu.day02.test;

/**
 *                     普通类   抽象类   接口类
 *                        【关系】    【特点】
 *      类与类              继承       只能单继承、可多层继承
 *      类与抽象类           继承       可以单继承，不可以多继承
 *      抽象类与抽象类        继承       只能单继承、可多层继承
 *      类与接口             实现       可以单继承，也可以多实现
 *                                    并且继承同时实现多个接口
 *      接口与接口            继承       可以单继承，可以多继承
 */
/*作业1：抽象类与接口的区别与关系？简答*/
/*
区别：①抽象类变量只能引用子类对象，接口变量只能引用实现类对象。
     ②接口中只能定义抽象方法，不能定义具体方法，但在抽象类中可以定义抽象方法，可以定义具体方法。
     ③接口中定义的变量是公共的静态的常量，而抽象类中定义的变量是普通属性。
     ④接口里不能定义静态方法；抽象类可以定义静态方法。
     ⑤接口里不包含构造器；抽象类里可以包含构造器。
     ⑥一个类最多只能有一个直接父类，包括抽象类；但一个类可以直接实现多个接口。
联系：①接口和抽象类都不能被实例化。
     ②接口和抽象类都可以包含抽象方法。

 */

//5.接口与接口：继承     ---可以单继承，可以多继承
interface Loo{}        interface Foo{}
interface Voo extends Loo,Foo{}

//4.类与接口:实现  --------可以单继承，也可以多实现
//interface Loo{}        interface Foo{}
//class Joo{}
//class Voo extends Joo implements Loo,Foo{}

//3.抽象类与抽象类：继承-只能单继承、可多层继承
//abstract class Loo{}
//abstract class Voo extends Loo{}
//abstract class Uoo extends Voo{}

//2.类与抽象类：继承
//abstract class Uoo{}    abstract class Voo{}
//class Loo extends Uoo{}

//1.类与类：继承---单继承，可以多层继承
//class Uoo{}
//class Loo extends Uoo{}
//class Voo extends Loo{}

public class 关系 {
}
